// 引入一个第三方模块
import axios from 'axios'

// 引入处理大数的第三方插件
import JSONBig from 'json-bigint'
// 进行二次封装,可以进行很多的设置
// 原来的地址,现在好像不能用了
// axios.defaults.baseURL = 'http://ttapi.research.itcast.cn'
// 更新后的基地址,这个可以用
axios.defaults.baseURL = 'http://api-toutiao-web.itheima.net'

// 不用怀疑,处理大数,就这一句话 可以网上搜索
axios.defaults.transformResponse = [function (data) {
  // console.log('从后端返回的数据是', data)
  // data 就是response,它一般来说会是一个JSON字符串
  try {
    // 如果这个JSON字符串中有大数，则JSONBig会自动处理
    return JSONBig.parse(data)
  } catch (err) {
    console.log('转换出错，原样返回数据', err)
    return data
  }
}]
// 添加请求拦截器
// 所有的请求都会到这里来,会去执行第一个参数，同时自动传入config
axios.interceptors.request.use(function (config) {
  // config.headers.aaaa = '11111111111111111111111111111111111'
  // config就是本次请求的配置信息。
  // 如果本地有token信息，就在config中添加上
  // console.log(Date.now(), 'axios发了一个请求', config)
  const tokenStr = localStorage.getItem('tokenStr')
  if (tokenStr) {
    config.headers.Authorization = `Bearer ${tokenStr}`
  }
  return config
}, function (error) {
  // Do something with request error
  return Promise.reject(error)
})
// 导出
export default axios
